With the fast development of broadband technologies, Push To Talk (PTT) over Cellular (PoC) service emerges in the mobile communication system. The PoC service is a PTT service defined by the Open Mobile Alliance (OMA) to be implemented in a packet network, and the PTT service is a half-duplex communication technology.
The implementation of the PoC service introduces a new communication mode which can not be provided by an existing mobile system or by a conventional voice call system into the mobile communication system. The PoC service can realize real-time call as well as overhead minimization. Meanwhile, because Voice over IP (VoIP) and the half-duplex manner are adopted in the PoC service, the PoC service can satisfy the client experience of real-time communication at a low cost and high efficiency.
The current mode for developing the PoC service defined by the OMA is shown in FIG. 1 and is described below.
First, a client with a PoC capability enabled terminal needs to subscribe with the provider of the PoC service to obtain the authorization of the PoC service.
Second, through the terminal, the PoC client discovers that a network has the PoC service capability.
Third, the PoC client establishes connections to other PoC clients through the provider of the PoC service.
Fourth, the PoC client may push a button and begin to talk, and the PoC service is implemented.
The corresponding PoC network mainly includes a PoC client, a PoC Server, a Session Initiation Protocol/Internet Protocol (SIP/IP) core network, an XML Document Management Server (XDMS), and a Presence Server.
It can be known from the above that the PoC Service is based on the SIP/IP core network and the capability of the SIP/IP core network is used to implement the routing and addressing of clients. The SIP/IP core network may be an IP Multimedia Subsystem (IMS) network or other SIP-based networks.
Some new processing mechanisms such as supporting queuing of media requests are introduced into the PoC service to optimize the performance of the PoC service and improve the experience of clients using the PoC service. The queuing mechanism of media requests may be used to sort multiple media requests in a PoC service session. These media requests can be any message related to media handling and carried by media request control protocols, for example, media request message, media request cancellation message, or media request queue status request message etc. The media request includes Talk Burst Request or Media Burst Request.
Both the PoC client and the PoC server need to support queuing of media requests when the queuing of media requests is implemented.
The processing of the media request queuing function is hereinafter described by taking the Talk Burst Control Protocol (TBCP) as an example. The TBCP serves as the media request control protocol in all the use cases. The implementation using the Media Burst Control Protocol (MBCP) is similar to the TBCP, and it is not described in detail here.
As shown in FIG. 2, the processing specifically includes the following steps:
First, PoC client A pushes the PoC button to request to send a Talk Burst so as to request talking when another client in the PoC session is talking;
Second, PoC client A sends a Talk Burst Request message to a PoC server X performing Controlling Function (CF), and the Talk Burst Request message may contain indication information for identifying the priority level of PoC client A and the service identifier of the PoC group;
Third, the PoC server X performing the CF determines that PoC client B is currently permitted to send a Talk Burst and that the priority level of PoC client A is lower than or equal to the priority level of PoC client B, and the PoC server X inserts the request of PoC client A into a Talk Burst Request queue and sends to PoC client A a Talk Burst Queue Position Status message. The Talk Burst Queue Position Status message may contain the position of the request of PoC client A and the priority level given to the request of PoC client A.
If PoC client A has sent a same request previously and the previous request has been put in the queue, the PoC server removes the previous request and puts the request sent this time into the queue. PoC client A notifies PoC client A that the request sent this time has been put into the queue.
In the above process, if the priority level of PoC client A is higher than the priority level of PoC client C, the request of PoC client A is inserted before the request of PoC client C even if PoC client C is about to talk in the queue. At this point, if the request of PoC client C is at the head of the queue, the PoC server X may send a Talk Burst Queue Position Status message to PoC client C to notify the updated position status of the request of PoC client C, but the PoC server X does not send a Talk Burst Queue Position Status message to the clients after PoC client C in the queue though their positions are also changed.
When the PoC server X sends a Talk Burst position status message to PoC client C because of the change in the position of PoC client C, if there are request messages from other clients such as clients D, E and F after client C in the queue and the clients have obtained the positions of their requests in the queue from the PoC server X in advance, the satisfaction of clients D, E and F decrease due to the insertion of PoC client A. For example, client D thinks that it is his turn to talk after talking of only one client (i.e. talking of client C), but client D finds that he is not permitted to talk actually after one client talks. Further more, the more the requests are inserted before the request of PoC client C, the worse the satisfaction of the clients whose requests are in the queue becomes.